/// @brief Second implementation of the first interface
/// @file SecondImplementOfFirst.hpp
/// @author Szymon Janikowski
///	@author Pawel Gilewski

#ifndef SECOND_IMP_OF_FIRST
#define SECOND_IMP_OF_FIRST
#include "../PluglibTest/FirstInterface.hpp"
#include "../PluglibTest/FirstInterfaceFactory.hpp"
#include <stdio.h>

#define SI_IMPL_NAME "SecondImplOfFirst"

class SecondImplementOfFirst : public FirstInterface
{
public: 
	void action(){cout <<"Second Implementation of First Interface: Action with no parameters"<<endl;}
	void action(string par){cout<<"Second Implementation of First Interface: Action with par: " << par << endl;};
};

class SecondFactoryOfFirst : public FirstInterfaceFactory
{
public:
	//static const string name_;
	std::string getName(){return SI_IMPL_NAME;};
	InterfaceBase* create(){return new SecondImplementOfFirst();}
};
//const string SecondFactoryOfFirst::name_ = "SecondImplOfFirst";
#endif